((1022) (1022 :OBJECT-NAME *PROGRAM* :NAME "bouncing ball" :GOAL-DESCRIPTION "A Pascal construct to start and name a program." :PARENT :NONE :CHILDREN (1024 1057 1068 1129) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST (1023)) (1023 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1022 :TYPE NON-EXPRESSION :CONTENTS (1025 1058 1130 1069)) (1024 :OBJECT-NAME *GOAL* :NAME "G:initial_questions" :GOAL-DESCRIPTION "Contained in this plan are all the get input plans in the program." :PARENT 1022 :CHILDREN (1025) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1025 :OBJECT-NAME *PLAN* :NAME "P:initial_questions" :GOAL-DESCRIPTION "Contained in this plan are all the get input plans in the program." :PARENT 1024 :CHILDREN (1027 1030) :COMPOSERS (1023) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1026)) (1026 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1025 :TYPE *PLAN* :CONTENTS (1028 1031)) (1027 :OBJECT-NAME *GOAL* :NAME "G:radius_question" :GOAL-DESCRIPTION "Contained in this plan is the get input plan for the radius of the ball." :PARENT 1025 :CHILDREN (1028) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1028 :OBJECT-NAME *PLAN* :NAME "P:radius_question" :GOAL-DESCRIPTION "Contained in this plan is the get input plan for the radius of the ball." :PARENT 1027 :CHILDREN (1033 1039) :COMPOSERS (1026) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1029)) (1029 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1028 :TYPE *PLAN* :CONTENTS (1037 1043)) (1030 :OBJECT-NAME *GOAL* :NAME "G:distance_question" :GOAL-DESCRIPTION "Contained in this plan is the get input plan for the distance from the top of the screen to the floor." :PARENT 1025 :CHILDREN (1031) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1031 :OBJECT-NAME *PLAN* :NAME "P:distance_question" :GOAL-DESCRIPTION "Contained in this plan is the get input plan for the distance from the top of the screen to the floor." :PARENT 1030 :CHILDREN (1045 1051) :COMPOSERS (1026) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1032)) (1032 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1031 :TYPE *PLAN* :CONTENTS (1049 1055)) (1033 :OBJECT-NAME *GOAL* :NAME "G:write_radius" :GOAL-DESCRIPTION "This is the prompt for the user to enter the radius of the ball." :PARENT 1028 :CHILDREN (1037) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1034 :OBJECT-NAME *STRING-CONSTANT* :NAME "write_radius" :GOAL-DESCRIPTION "This is the prompt for the user to enter the radius of the ball." :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1036 1035)) (1035 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1034 :TYPE *PLAN* :CONTENTS NIL) (1036 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1034 :TYPE STRING :CONTENTS ("What is the radius of the ball?")) (1037 :OBJECT-NAME *WRITELN* :NAME "writeln" :GOAL-DESCRIPTION "A Pascal construct to write to the screen a message terminated by a return character." :PARENT 1033 :CHILDREN :NONE :COMPOSERS (1029) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1038)) (1038 :OBJECT-NAME *MULTI-SLOT* :NAME "message" :MY-PLAN 1037 :TYPE *EXPRESSION* :CONTENTS (1034)) (1039 :OBJECT-NAME *GOAL* :NAME "G:read_radius" :GOAL-DESCRIPTION "This is where the user enters the radius of the ball." :PARENT 1028 :CHILDREN (1043) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1040 :OBJECT-NAME *REAL-VARIABLE* :NAME "read_radius" :GOAL-DESCRIPTION "This is where the user enters the radius of the ball." :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1042 1041)) (1041 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1040 :TYPE *PLAN* :CONTENTS NIL) (1042 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1040 :TYPE REAL :CONTENTS (30.0)) (1043 :OBJECT-NAME *READLN* :NAME "readln" :GOAL-DESCRIPTION "A Pascal construct to read input from the keyboard, terminated by a return character." :PARENT 1039 :CHILDREN :NONE :COMPOSERS (1029) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1044)) (1044 :OBJECT-NAME *UNI-SLOT* :NAME "variable" :MY-PLAN 1043 :TYPE *VARIABLE* :CONTENTS (1040)) (1045 :OBJECT-NAME *GOAL* :NAME "G:write_distance" :GOAL-DESCRIPTION "This is the prompt for the user to enter the distance from the top of the screen to the line representing the floor." :PARENT 1031 :CHILDREN (1049) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1046 :OBJECT-NAME *STRING-CONSTANT* :NAME "write_distance" :GOAL-DESCRIPTION "This is the prompt for the user to enter the distance from the top of the screen to the line representing the floor." :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1048 1047)) (1047 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1046 :TYPE *PLAN* :CONTENTS NIL) (1048 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1046 :TYPE STRING :CONTENTS ("What is the distance from the top of the screen to the line representing the floor?")) (1049 :OBJECT-NAME *WRITELN* :NAME "writeln" :GOAL-DESCRIPTION "A Pascal construct to write to the screen a message terminated by a return character." :PARENT 1045 :CHILDREN :NONE :COMPOSERS (1032) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1050)) (1050 :OBJECT-NAME *MULTI-SLOT* :NAME "message" :MY-PLAN 1049 :TYPE *EXPRESSION* :CONTENTS (1046)) (1051 :OBJECT-NAME *GOAL* :NAME "G:read_distance" :GOAL-DESCRIPTION "This is where the user enters the distance from the top of the screen to the line representing the floor." :PARENT 1031 :CHILDREN (1055) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1052 :OBJECT-NAME *REAL-VARIABLE* :NAME "read_distance" :GOAL-DESCRIPTION "This is where the user enters the distance from the top of the screen to the line representing the floor." :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1054 1053)) (1053 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1052 :TYPE *PLAN* :CONTENTS NIL) (1054 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1052 :TYPE REAL :CONTENTS (300.0)) (1055 :OBJECT-NAME *READLN* :NAME "readln" :GOAL-DESCRIPTION "A Pascal construct to read input from the keyboard, terminated by a return character." :PARENT 1051 :CHILDREN :NONE :COMPOSERS (1032) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1056)) (1056 :OBJECT-NAME *UNI-SLOT* :NAME "variable" :MY-PLAN 1055 :TYPE *VARIABLE* :CONTENTS (1052)) (1057 :OBJECT-NAME *GOAL* :NAME "G:floor_stuff" :GOAL-DESCRIPTION "Contained in this plan are the plans necessary to form the line representing the floor." :PARENT 1022 :CHILDREN (1058) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1058 :OBJECT-NAME *PLAN* :NAME "P:floor_stuff" :GOAL-DESCRIPTION "Contained in this plan are the plans necessary to form the line representing the floor." :PARENT 1057 :CHILDREN (1060 1067) :COMPOSERS (1023) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1059)) (1059 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1058 :TYPE *PLAN* :CONTENTS (1064 1174)) (1060 :OBJECT-NAME *GOAL* :NAME "G:move_floor" :GOAL-DESCRIPTION "This plan will move to the correct place to begin drawing the line representing the floor." :PARENT 1058 :CHILDREN (1064) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1061 :OBJECT-NAME *REAL-CONSTANT* :NAME "zero" :GOAL-DESCRIPTION "nothing, nil, zippo" :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1063 1062)) (1062 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1061 :TYPE *PLAN* :CONTENTS NIL) (1063 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1061 :TYPE REAL :CONTENTS (0.0)) (1064 :OBJECT-NAME *MOVETO* :NAME "moveto" :GOAL-DESCRIPTION "A Macintosh procedure to move the current position to another in the graphics window." :PARENT 1060 :CHILDREN :NONE :COMPOSERS (1059) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1065 1066)) (1065 :OBJECT-NAME *UNI-SLOT* :NAME "horizontal" :MY-PLAN 1064 :TYPE *REAL-EXPRESSION* :CONTENTS (1061)) (1066 :OBJECT-NAME *UNI-SLOT* :NAME "vertical" :MY-PLAN 1064 :TYPE *REAL-EXPRESSION* :CONTENTS (1052)) (1067 :OBJECT-NAME *GOAL* :NAME "G:line_floor" :GOAL-DESCRIPTION "This plan will draw the line representing the floor." :PARENT 1058 :CHILDREN (1174) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1068 :OBJECT-NAME *GOAL* :NAME "G:while_loops" :GOAL-DESCRIPTION "This plan contains both of the while_loops in this program, and everything inside them." :PARENT 1022 :CHILDREN (1069) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1069 :OBJECT-NAME *PLAN* :NAME "P:while_loops" :GOAL-DESCRIPTION "This plan contains both of the while_loops in this program, and everything inside them." :PARENT 1068 :CHILDREN (1071 1074) :COMPOSERS (1023) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1070)) (1070 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1069 :TYPE *PLAN* :CONTENTS (1072 1075)) (1071 :OBJECT-NAME *GOAL* :NAME "G:loop1" :GOAL-DESCRIPTION "This plan contains the first while loop and everything inside it." :PARENT 1069 :CHILDREN (1072) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1072 :OBJECT-NAME *PLAN* :NAME "P:loop1" :GOAL-DESCRIPTION "This plan contains the first while loop and everything inside it." :PARENT 1071 :CHILDREN (1077 1080) :COMPOSERS (1070) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1073)) (1073 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1072 :TYPE *PLAN* :CONTENTS (1078)) (1074 :OBJECT-NAME *GOAL* :NAME "G:loop2" :GOAL-DESCRIPTION "This plan contains the second while loop and everything inside it." :PARENT 1069 :CHILDREN (1075) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1075 :OBJECT-NAME *PLAN* :NAME "P:loop2" :GOAL-DESCRIPTION "This plan contains the second while loop and everything inside it." :PARENT 1074 :CHILDREN (1133 1136) :COMPOSERS (1070) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1076)) (1076 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1075 :TYPE *PLAN* :CONTENTS (1134)) (1077 :OBJECT-NAME *GOAL* :NAME "G:while_stuff1" :GOAL-DESCRIPTION "This plan contains everything that relates directly to the while loop; the while-do plan and its modifier, but not the things inside of the loop." :PARENT 1072 :CHILDREN (1078) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1078 :OBJECT-NAME *PLAN* :NAME "P:while_stuff1" :GOAL-DESCRIPTION "This plan contains everything that relates directly to the while loop; the while-do plan and its modifier, but not the things inside of the loop." :PARENT 1077 :CHILDREN (1083 1087 1095) :COMPOSERS (1073) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1079)) (1079 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1078 :TYPE *PLAN* :CONTENTS (1084)) (1080 :OBJECT-NAME *GOAL* :NAME "G:other_loop1" :GOAL-DESCRIPTION "This plan contains all of the plans which will be inside of the loop." :PARENT 1072 :CHILDREN (1081) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1081 :OBJECT-NAME *PLAN* :NAME "P:other_loop1" :GOAL-DESCRIPTION "This plan contains all of the plans which will be inside of the loop." :PARENT 1080 :CHILDREN (1100 1103 1108 1116) :COMPOSERS (1086) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1082)) (1082 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1081 :TYPE *PLAN* :CONTENTS (1104 1101 1177)) (1083 :OBJECT-NAME *GOAL* :NAME "G:while_do1" :GOAL-DESCRIPTION "This is the actual while-do plan for the first loop." :PARENT 1078 :CHILDREN (1084) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1084 :OBJECT-NAME *WHILE-DO* :NAME "while-do" :GOAL-DESCRIPTION "A Pascal construct to decide how often to execute a group of statements repeatedly, depending on the result of a boolean test just BEFORE each execution." :PARENT 1083 :CHILDREN :NONE :COMPOSERS (1079) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1085 1086)) (1085 :OBJECT-NAME *UNI-SLOT* :NAME "test" :MY-PLAN 1084 :TYPE *BOOLEAN-EXPRESSION* :CONTENTS (1091)) (1086 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1084 :TYPE NON-EXPRESSION :CONTENTS (1081)) (1087 :OBJECT-NAME *GOAL* :NAME "G:test" :GOAL-DESCRIPTION "This is the test for the first loop." :PARENT 1078 :CHILDREN (1091) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1088 :OBJECT-NAME *REAL-VARIABLE* :NAME "vert" :GOAL-DESCRIPTION "This is the variable which will control the ball's vertical movement." :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1090 1089)) (1089 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1088 :TYPE *PLAN* :CONTENTS NIL) (1090 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1088 :TYPE REAL :CONTENTS (30.0)) (1091 :OBJECT-NAME *LESS-THAN* :NAME "<" :GOAL-DESCRIPTION "A Pascal operator to test whether one real expression is less than another." :PARENT 1087 :CHILDREN NIL :COMPOSERS (1085) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1092 1093 1094)) (1092 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1091 :TYPE BOOLEAN :CONTENTS NIL) (1093 :OBJECT-NAME *UNI-SLOT* :NAME "expression1" :MY-PLAN 1091 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1094 :OBJECT-NAME *UNI-SLOT* :NAME "expression2" :MY-PLAN 1091 :TYPE *REAL-EXPRESSION* :CONTENTS (1096)) (1095 :OBJECT-NAME *GOAL* :NAME "G:test_subtract" :GOAL-DESCRIPTION "This plan will do the subtraction which will be nested into the first test." :PARENT 1078 :CHILDREN (1096) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1096 :OBJECT-NAME *SUBTRACT* :NAME "-" :GOAL-DESCRIPTION "A Pascal operator to subtract two numbers." :PARENT 1095 :CHILDREN NIL :COMPOSERS (1094) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1097 1098 1099)) (1097 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1096 :TYPE REAL :CONTENTS NIL) (1098 :OBJECT-NAME *UNI-SLOT* :NAME "subtrahend" :MY-PLAN 1096 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1099 :OBJECT-NAME *UNI-SLOT* :NAME "minuend" :MY-PLAN 1096 :TYPE *REAL-EXPRESSION* :CONTENTS (1052)) (1100 :OBJECT-NAME *GOAL* :NAME "G:runningtotal_stuff1" :GOAL-DESCRIPTION "This plan contains all of the components of the running total plan for the first loop." :PARENT 1081 :CHILDREN (1101) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1101 :OBJECT-NAME *PLAN* :NAME "P:runningtotal_stuff1" :GOAL-DESCRIPTION "This plan contains all of the components of the running total plan for the first loop." :PARENT 1100 :CHILDREN (1117 1121) :COMPOSERS (1082) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1102)) (1102 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1101 :TYPE *PLAN* :CONTENTS (1118)) (1103 :OBJECT-NAME *GOAL* :NAME "G:paintcircle1" :GOAL-DESCRIPTION "This plan will make the paintcircle representing the ball for the first loop." :PARENT 1081 :CHILDREN (1104) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1104 :OBJECT-NAME *PAINTCIRCLE* :NAME "paintcircle" :GOAL-DESCRIPTION "A Macintosh procedure to paint a circle in the graphics window." :PARENT 1103 :CHILDREN :NONE :COMPOSERS (1082) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1105 1106 1107)) (1105 :OBJECT-NAME *UNI-SLOT* :NAME "horizontal" :MY-PLAN 1104 :TYPE *REAL-EXPRESSION* :CONTENTS (1112)) (1106 :OBJECT-NAME *UNI-SLOT* :NAME "vertical" :MY-PLAN 1104 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1107 :OBJECT-NAME *UNI-SLOT* :NAME "radius" :MY-PLAN 1104 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1108 :OBJECT-NAME *GOAL* :NAME "G:ball_addition1" :GOAL-DESCRIPTION "This addition plan will be nested in the paintcircle command in the first loop." :PARENT 1081 :CHILDREN (1112) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1109 :OBJECT-NAME *REAL-CONSTANT* :NAME "thirty" :GOAL-DESCRIPTION "15+15, 3*30" :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1111 1110)) (1110 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1109 :TYPE *PLAN* :CONTENTS NIL) (1111 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1109 :TYPE REAL :CONTENTS (30.0)) (1112 :OBJECT-NAME *ADD* :NAME "+" :GOAL-DESCRIPTION "A Pascal operator to add two numbers." :PARENT 1108 :CHILDREN NIL :COMPOSERS (1105) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1113 1114 1115)) (1113 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1112 :TYPE REAL :CONTENTS NIL) (1114 :OBJECT-NAME *UNI-SLOT* :NAME "addend1" :MY-PLAN 1112 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1115 :OBJECT-NAME *UNI-SLOT* :NAME "addend2" :MY-PLAN 1112 :TYPE *REAL-EXPRESSION* :CONTENTS (1109)) (1116 :OBJECT-NAME *GOAL* :NAME "G:eraserect" :GOAL-DESCRIPTION "This is the eraserect plan for the first loop." :PARENT 1081 :CHILDREN (1177) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1117 :OBJECT-NAME *GOAL* :NAME "G:vert_setequal" :GOAL-DESCRIPTION "This is half of the running total plan." :PARENT 1101 :CHILDREN (1118) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1118 :OBJECT-NAME *ASSIGN* :NAME ":=" :GOAL-DESCRIPTION "A Pascal construct to assign a value to a given variable." :PARENT 1117 :CHILDREN :NONE :COMPOSERS (1102) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1119 1120)) (1119 :OBJECT-NAME *UNI-SLOT* :NAME "variable" :MY-PLAN 1118 :TYPE *VARIABLE* :CONTENTS (1088)) (1120 :OBJECT-NAME *UNI-SLOT* :NAME "expression" :MY-PLAN 1118 :TYPE *EXPRESSION* :CONTENTS (1125)) (1121 :OBJECT-NAME *GOAL* :NAME "G:vert_addition" :GOAL-DESCRIPTION "This is the second half of the running total plan." :PARENT 1101 :CHILDREN (1125) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1122 :OBJECT-NAME *REAL-CONSTANT* :NAME "twenty" :GOAL-DESCRIPTION "5+5, 1*10" :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1124 1123)) (1123 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1122 :TYPE *PLAN* :CONTENTS NIL) (1124 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1122 :TYPE REAL :CONTENTS (20.0)) (1125 :OBJECT-NAME *ADD* :NAME "+" :GOAL-DESCRIPTION "A Pascal operator to add two numbers." :PARENT 1121 :CHILDREN NIL :COMPOSERS (1120) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1126 1127 1128)) (1126 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1125 :TYPE REAL :CONTENTS NIL) (1127 :OBJECT-NAME *UNI-SLOT* :NAME "addend1" :MY-PLAN 1125 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1128 :OBJECT-NAME *UNI-SLOT* :NAME "addend2" :MY-PLAN 1125 :TYPE *REAL-EXPRESSION* :CONTENTS (1122)) (1129 :OBJECT-NAME *GOAL* :NAME "G:vert_initial" :GOAL-DESCRIPTION "This sets the initial value for vert." :PARENT 1022 :CHILDREN (1130) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1130 :OBJECT-NAME *ASSIGN* :NAME ":=" :GOAL-DESCRIPTION "A Pascal construct to assign a value to a given variable." :PARENT 1129 :CHILDREN :NONE :COMPOSERS (1023) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1131 1132)) (1131 :OBJECT-NAME *UNI-SLOT* :NAME "variable" :MY-PLAN 1130 :TYPE *VARIABLE* :CONTENTS (1088)) (1132 :OBJECT-NAME *UNI-SLOT* :NAME "expression" :MY-PLAN 1130 :TYPE *EXPRESSION* :CONTENTS (1040)) (1133 :OBJECT-NAME *GOAL* :NAME "G:while_stuff2" :GOAL-DESCRIPTION "This plan contains all plans directly related to the second while loop, but not things within it." :PARENT 1075 :CHILDREN (1134) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1134 :OBJECT-NAME *PLAN* :NAME "P:while_stuff2" :GOAL-DESCRIPTION "This plan contains all plans directly related to the second while loop, but not things within it." :PARENT 1133 :CHILDREN (1139 1143) :COMPOSERS (1076) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1135)) (1135 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1134 :TYPE *PLAN* :CONTENTS (1140)) (1136 :OBJECT-NAME *GOAL* :NAME "G:other_loop2" :GOAL-DESCRIPTION "This plan contains all of the stuff inside of the second while loop." :PARENT 1075 :CHILDREN (1137) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1137 :OBJECT-NAME *PLAN* :NAME "P:other_loop2" :GOAL-DESCRIPTION "This plan contains all of the stuff inside of the second while loop." :PARENT 1136 :CHILDREN (1148 1151 1156 1161) :COMPOSERS (1142) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1138)) (1138 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1137 :TYPE *PLAN* :CONTENTS (1152 1149 1182)) (1139 :OBJECT-NAME *GOAL* :NAME "G:while_do2" :GOAL-DESCRIPTION "This is the actual while-do plan for the second loop." :PARENT 1134 :CHILDREN (1140) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1140 :OBJECT-NAME *WHILE-DO* :NAME "while-do" :GOAL-DESCRIPTION "A Pascal construct to decide how often to execute a group of statements repeatedly, depending on the result of a boolean test just BEFORE each execution." :PARENT 1139 :CHILDREN :NONE :COMPOSERS (1135) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1141 1142)) (1141 :OBJECT-NAME *UNI-SLOT* :NAME "test" :MY-PLAN 1140 :TYPE *BOOLEAN-EXPRESSION* :CONTENTS (1144)) (1142 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1140 :TYPE NON-EXPRESSION :CONTENTS (1137)) (1143 :OBJECT-NAME *GOAL* :NAME "G:test2" :GOAL-DESCRIPTION "This is the test for the while-do plan in the second loop." :PARENT 1134 :CHILDREN (1144) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1144 :OBJECT-NAME *GREATER-THAN* :NAME ">" :GOAL-DESCRIPTION "A Pascal operator to test whether one real expression is greater than another." :PARENT 1143 :CHILDREN NIL :COMPOSERS (1141) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1145 1146 1147)) (1145 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1144 :TYPE BOOLEAN :CONTENTS NIL) (1146 :OBJECT-NAME *UNI-SLOT* :NAME "expression1" :MY-PLAN 1144 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1147 :OBJECT-NAME *UNI-SLOT* :NAME "expression2" :MY-PLAN 1144 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1148 :OBJECT-NAME *GOAL* :NAME "G:running_total2" :GOAL-DESCRIPTION "This plan contains plans to form the running total plan for the second loop." :PARENT 1137 :CHILDREN (1149) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1149 :OBJECT-NAME *PLAN* :NAME "P:running_total2" :GOAL-DESCRIPTION "This plan contains plans to form the running total plan for the second loop." :PARENT 1148 :CHILDREN (1162 1166) :COMPOSERS (1138) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1150)) (1150 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1149 :TYPE *PLAN* :CONTENTS (1163)) (1151 :OBJECT-NAME *GOAL* :NAME "G:paintcircle2" :GOAL-DESCRIPTION "THis is the plan for the paintcircle which represents the ball for the second loop." :PARENT 1137 :CHILDREN (1152) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1152 :OBJECT-NAME *PAINTCIRCLE* :NAME "paintcircle" :GOAL-DESCRIPTION "A Macintosh procedure to paint a circle in the graphics window." :PARENT 1151 :CHILDREN :NONE :COMPOSERS (1138) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1153 1154 1155)) (1153 :OBJECT-NAME *UNI-SLOT* :NAME "horizontal" :MY-PLAN 1152 :TYPE *REAL-EXPRESSION* :CONTENTS (1157)) (1154 :OBJECT-NAME *UNI-SLOT* :NAME "vertical" :MY-PLAN 1152 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1155 :OBJECT-NAME *UNI-SLOT* :NAME "radius" :MY-PLAN 1152 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1156 :OBJECT-NAME *GOAL* :NAME "G:paintcircle_addition2" :GOAL-DESCRIPTION "This plan will be nested into the paintcircle plan." :PARENT 1137 :CHILDREN (1157) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1157 :OBJECT-NAME *ADD* :NAME "+" :GOAL-DESCRIPTION "A Pascal operator to add two numbers." :PARENT 1156 :CHILDREN NIL :COMPOSERS (1153) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1158 1159 1160)) (1158 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1157 :TYPE REAL :CONTENTS NIL) (1159 :OBJECT-NAME *UNI-SLOT* :NAME "addend1" :MY-PLAN 1157 :TYPE *REAL-EXPRESSION* :CONTENTS (1040)) (1160 :OBJECT-NAME *UNI-SLOT* :NAME "addend2" :MY-PLAN 1157 :TYPE *REAL-EXPRESSION* :CONTENTS (1109)) (1161 :OBJECT-NAME *GOAL* :NAME "G:eraserect2" :GOAL-DESCRIPTION "This is the eraserect plan in the second loop." :PARENT 1137 :CHILDREN (1182) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1162 :OBJECT-NAME *GOAL* :NAME "G:vert_setequal2" :GOAL-DESCRIPTION "This is the first part of the running total planin the second loop." :PARENT 1149 :CHILDREN (1163) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1163 :OBJECT-NAME *ASSIGN* :NAME ":=" :GOAL-DESCRIPTION "A Pascal construct to assign a value to a given variable." :PARENT 1162 :CHILDREN :NONE :COMPOSERS (1150) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1164 1165)) (1164 :OBJECT-NAME *UNI-SLOT* :NAME "variable" :MY-PLAN 1163 :TYPE *VARIABLE* :CONTENTS (1088)) (1165 :OBJECT-NAME *UNI-SLOT* :NAME "expression" :MY-PLAN 1163 :TYPE *EXPRESSION* :CONTENTS (1167)) (1166 :OBJECT-NAME *GOAL* :NAME "G:vert_subtraction" :GOAL-DESCRIPTION "THis is the second part of the running total plan in the second loop." :PARENT 1149 :CHILDREN (1167) :COMPOSERS :NONE :MULTIPLE-COMPOSERS-P :NONE :SLOT-LIST :NONE) (1167 :OBJECT-NAME *SUBTRACT* :NAME "-" :GOAL-DESCRIPTION "A Pascal operator to subtract two numbers." :PARENT 1166 :CHILDREN NIL :COMPOSERS (1165) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1168 1169 1170)) (1168 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1167 :TYPE REAL :CONTENTS NIL) (1169 :OBJECT-NAME *UNI-SLOT* :NAME "subtrahend" :MY-PLAN 1167 :TYPE *REAL-EXPRESSION* :CONTENTS (1122)) (1170 :OBJECT-NAME *UNI-SLOT* :NAME "minuend" :MY-PLAN 1167 :TYPE *REAL-EXPRESSION* :CONTENTS (1088)) (1171 :OBJECT-NAME *REAL-CONSTANT* :NAME "thousand" :GOAL-DESCRIPTION "one thousand" :PARENT NIL :CHILDREN :NONE :COMPOSERS NIL :MULTIPLE-COMPOSERS-P T :SLOT-LIST (1173 1172)) (1172 :OBJECT-NAME *MULTI-SLOT* :NAME "body" :MY-PLAN 1171 :TYPE *PLAN* :CONTENTS NIL) (1173 :OBJECT-NAME *UNI-SLOT* :NAME "value" :MY-PLAN 1171 :TYPE REAL :CONTENTS (1000.0)) (1174 :OBJECT-NAME *LINETO* :NAME "lineto" :GOAL-DESCRIPTION "A Macintosh procedure to draw a line from the current position to another in the graphics window." :PARENT 1067 :CHILDREN :NONE :COMPOSERS (1059) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1175 1176)) (1175 :OBJECT-NAME *UNI-SLOT* :NAME "horizontal" :MY-PLAN 1174 :TYPE *REAL-EXPRESSION* :CONTENTS (1171)) (1176 :OBJECT-NAME *UNI-SLOT* :NAME "vertical" :MY-PLAN 1174 :TYPE *REAL-EXPRESSION* :CONTENTS (1052)) (1177 :OBJECT-NAME *ERASERECT* :NAME "eraserect" :GOAL-DESCRIPTION "A Macintosh procedure to erase a rectangle in the graphics window." :PARENT 1116 :CHILDREN :NONE :COMPOSERS (1082) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1178 1179 1180 1181)) (1178 :OBJECT-NAME *UNI-SLOT* :NAME "bottom" :MY-PLAN 1177 :TYPE *REAL-EXPRESSION* :CONTENTS (1052)) (1179 :OBJECT-NAME *UNI-SLOT* :NAME "right" :MY-PLAN 1177 :TYPE *REAL-EXPRESSION* :CONTENTS (1171)) (1180 :OBJECT-NAME *UNI-SLOT* :NAME "top" :MY-PLAN 1177 :TYPE *REAL-EXPRESSION* :CONTENTS (1061)) (1181 :OBJECT-NAME *UNI-SLOT* :NAME "left" :MY-PLAN 1177 :TYPE *REAL-EXPRESSION* :CONTENTS (1061)) (1182 :OBJECT-NAME *ERASERECT* :NAME "eraserect" :GOAL-DESCRIPTION "A Macintosh procedure to erase a rectangle in the graphics window." :PARENT 1161 :CHILDREN :NONE :COMPOSERS (1138) :MULTIPLE-COMPOSERS-P NIL :SLOT-LIST (1183 1184 1185 1186)) (1183 :OBJECT-NAME *UNI-SLOT* :NAME "bottom" :MY-PLAN 1182 :TYPE *REAL-EXPRESSION* :CONTENTS (1052)) (1184 :OBJECT-NAME *UNI-SLOT* :NAME "right" :MY-PLAN 1182 :TYPE *REAL-EXPRESSION* :CONTENTS (1171)) (1185 :OBJECT-NAME *UNI-SLOT* :NAME "top" :MY-PLAN 1182 :TYPE *REAL-EXPRESSION* :CONTENTS (1061)) (1186 :OBJECT-NAME *UNI-SLOT* :NAME "left" :MY-PLAN 1182 :TYPE *REAL-EXPRESSION* :CONTENTS (1061)))